using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace Gko.Wpf.Mvvm.Interfaces
{
	public interface IDialogService
	{
		bool? ShowDialog<TViewModel>(TViewModel viewModel) where TViewModel : class, IModalViewModel;
		void ShowWindow<TViewModel>(TViewModel viewModel) where TViewModel : class, IWindowViewModel;
		void ShowMainView<TViewModel>(TViewModel viewModel) where TViewModel : class, IModalViewModel;
		void ShowMainView<TViewModel>(Window window, TViewModel viewModel) where TViewModel : class, IModalViewModel;
		void ShowSplash<TViewModel>(TViewModel viewModel) where TViewModel : class, IWindowViewModel;
	
		void AttachWindow<TViewModel, TWindow>(Guid id) where TViewModel : class, IWindowViewModel where TWindow : Window;
		bool? ShowDialog<TViewModel>(TViewModel viewModel, Guid id) where TViewModel : class, IModalViewModel;
		void ShowWindow<TViewModel>(TViewModel viewModel, Guid id) where TViewModel : class, IWindowViewModel;
	}
}